O čem by jsi se rád dozvěděl?
[[importování projektu]]
[[proměnné]]
[[podmínky]]
[[vstup]]Proměnné můžeš definovat přímo při navštívení pasáže pomocí tagů:
`(set: $textova_promena to "hodnota")
(set: $ciselna_promena to 15)
(set: $pole_hodnot to (a:"nůžky","papír","lepidlo"))`
(set: $textova_promenna to "hodnota")
(set: $ciselna_promenna to 15)
(set: $pole_hodnot to (a:"nůžky","papír","lepidlo"))
Hodnotu pak zobrazíš pomocí `$textova_promenna`
$textova_promenna
[[vstup od uživatele->proměnné2]]Od uživatele můžeme hodnotu získat pomocí `(input-box:2bind $textova_promenna,"=XX=")`, můžeme zvolit různý formát, úvodní hodnotu či dokonce donutit uživatele vyplnit pouze text, který chceme my.
Příkaz `2bind` označuje, do které proměnné se má hodnota uložit. V tomto případě přepíšeme hodnotu `$textova_promenna` ($textova_promenna) z předchozí pasáže hodnotou zadanou uživatelem.
(input-box:2bind $textova_promenna,"=XX=")
Nová hodnota proměnné se projeví až v [[další pasáži->proměnné3]]`$textova_promenna` je nyní "$textova_promenna"
[[A co takhle počítání?->proměnné4]] Pamatuješ si ještě na proměnnou `$ciselna_promenna` ($ciselna_promenna)? Nastavili jsme ji pomocí `(set: $ciselna_promenna to 15)` na 15, nyní k ní můžeme přičíst 5 pomocí `(set: $ciselna_promenna to it + 5)`
(set: $ciselna_promenna to it + 5)
Můžeme též využít náhodných hodnot, které se generují při zobrazení pasáže. Nastavme si třeba hodnotu `$nahodna_promenna` na náhodnou hodnotu od 5 do 15 pomocí `(set: $nahodna_promenna to (random:5,15))`
(set: $nahodna_promenna to (random:5,15))
[[Změna se opět projeví v další pasáži->proměnné 5]]A jsme na konci, vytvořili jsme si
`$textova_promenna` == $textova_promenna
`$ciselna_promenna` == $ciselna_promenna
`$pole_hodnot` == $pole_hodnot
`nahodna_promenna` == $nahodna_promenna
[[Zpět na rozchodník->Rozchodník]] Podmínky umožňují skrýt určité části (či volby) před hráčem, případně omezit vykonání některých maker. Kostra takové podmínky vypadá následovně:
(align:"=><=")+(box:"X")[`(if:PODMÍNKA)[Cokoliv je mezi těmito hranatými závorkami se zobrazí/vykoná POUZE pokud je podmínka pravda]`]
Volitelně můžeme přidat i část pro případ, kdy podmínka pravda není:
(align:"=><=")+(box:"X")[`(if:PODMÍNKA)[Cokoliv je mezi těmito hranatými závorkami se zobrazí/vykoná POUZE pokud je podmínka pravda]\
(else:)[Toto se zobrazí POUZE pokud je podmínka nepravda`]`
Přičemž to co se zobrazí může být libovolný text, nebo odkaz na další pasáž dosažitelná pouze pokud je podmínka pravdivá, nebo nemusí být viditelné vůbec (například nastavení hodnoty).
Podmínky mohou být následujícího typu:
* náhodné
* závislé na počtu navštívení pasáže (této či jiné)
* závislé na hodnotě proměnných nastavených kdykoliv v rámci příběhu
[[Zkusme si ty náhodné->podmínky2]]Hodí se například pro simulaci hodu kostkou. Využijeme pro ni makro `(random:OD,DO)` které vložime do podmínky a porovnáme s požadovanou hodnotou. Pro simulaci hodu mincí, stačí využít `(if:(random:0,1) is 0)[V 50% případů se toto zobrazí/vykoná]`:
(align:"=><=")+(box:"X")[(if:(random:0,1) is 0)[V 50% případů se toto zobrazí/vykoná]]
Pokud chceme simulovat padnutí například 6ky, můžeme využít `(if:(random:1,6) >= 5)[Ve 33% případů se toto zobrazí/vykoná]`
(align:"=><=")+(box:"X")[(if:(random:1,6) >= 5)[Ve 33% případů se toto zobrazí/vykoná]]
[[zkusit to znovu->podmínky2]]
[[pokračovat na podmínky závislé na počtu návštěv->podmínky3]]Někdy může být výhodné upravit text podle toho, kolikrát již uživatel navštívil nějakou pasáž. To se dělá pomocí `(if:visits >= 3)[Zobrazí se až pokukd zde byl uživatel 3x]`
(align:"=><=")+(box:"X")[(if:visits >= 3)[Zobrazí se až pokud zde byl uživatel 3x]]
Ale můžeme sledovat i jiné pasáže pomocí `(if:(history: where its name contains "proměnné 5")'s length <= 3)[Zobrazí se pouze pokud uživatel nenavštívil sekci "proměnné 5" více než 3x]`
(align:"=><=")+(box:"X")[(if:(history: where its name contains "proměnné 5")'s length <= 3)[Zobrazí se pouze pokud uživatel nenavštívil sekci "proměnné 5" více než 3x]]
Speciální možností je pak návštěva jednou za několik tahů, případně sudé či liché návštěvy, čímž může vzniknout dojem, že je uživatel jinde (například si všimne jiné významné věci, třeba tajných dveří) `(if:visits % 3 is 2)[Zobrazí se každou 3. návštěvu počínaje druhou návštěvu (2., 5., 8., 11, ...)]`
(align:"=><=")+(box:"X")[(if:visits % 3 is 2)[Zobrazí se každou 3. návštěvu počínaje druhou návštěvu (2., 5., 8., 11, ...)]]
[[Tak šup, navštiv tuto pasáž ještě jednou->podmínky3]]
[[Ale teď už honem na podmínky s proměnnými->podmínky4]]Tyto podmínky fungují obdobně, ale nabízejí větší variabilitu. Kdykoliv a kdekoliv můžeme nastavit naše podmínky na jakékoliv hodnoty a následně je využít. Zde si ukážeme příklad s hádáním. Nejprve zadáme otázku:
Rádi mne máte, života by beze mne nebylo. Ale kdo se na mne dívá, vždycky se mračí. Kdo jsem?
A pomocí `(input-box:2bind $odpoved,"=XX=")` si vyžádáme od uživatele vstup.
(input-box:2bind $odpoved,"=XX=")
Na další stránce vyhodnotíme, jestli uživatel vyplnil `$odpoved` správně.
[[Odpověz->podmínky5]]Pomocí `(if:$odpoved is "slunce")[Uhádl jsi [[pokračuj k rozchodníku->Rozchodník]]](else:)[Špatně [[zkus to znovu->podmínky4]]]` zobrazíme uživateli pouze jednu volbu. Nebude tedy moct pokračovat, dokud hádanku nevyřeší.
(if:$odpoved is "slunce")[Uhádl jsi [[pokračuj k rozchodníku->Rozchodník]]](else:)[Špatně [[zkus to znovu->podmínky4]]]
(after:5s)[Existuje ještě speciální volba `(after:ČASs)[hodnota]`, která umožní zobrazit text po určité době. Kdyby někdo pořád ještě netušil, tak odpověď je "slunce"]Základní textový vstup se dělá pomocí `(input-box:2bind $hodnota,"=XX=")`
(input-box:2bind $hodnota,"=XX=")
Použitím `2bind` se uloží vstup do specifikované proměnné. Text `"=XX="` slouží k specifikaci rámečku a zarovnání.
Důležité je vědět, že tato hodnota se projeví až v následující pasáži, [[kam se nyní vydáme->vstup2]]Hodnota z předchozí stránky je $hodnota
Další možnost vstupu je `(dropdown: 2bind $zbran,"sekera","meč","luk")`
(dropdown: 2bind $zbran,"sekera","meč","luk")
Který necháme uživatele vybrat jednu z několika možností. Opět se nám hodnota uloží do specifikované proměnné, kterou budeme moci v následujících pasážích využít.
[[jdeme tam->vstup3]]Uživatel si vybral $zbran.
Pokud chceme uživateli dovolit více věcí, můžeme k tomu použít. Musíme ovšem každý prvek specifikovat samostatně:
`(checkbox: 2bind $zbroj,"zbroj")
(checkbox: 2bind $stit,"štít")
(checkbox: 2bind $prilba,"přilbu")`
(checkbox: 2bind $zbroj,"zbroj")
(checkbox: 2bind $stit,"štít")
(checkbox: 2bind $prilba,"přilbu")
A na následující stránce zjistíme, co vše si uživatel vybral. Pozor, pokud je nějaká hodnota již existující a má hodnotu "true" (pravda), bude předem zaškrtlá.
[[dále->vstup4]]Pomocí podmínek zobrazíme, které vybavení si uživatel zvolil.
Půjdeš(if:$zbroj is true)[ ve zbroji](if:$stit)[ se štítem](if:$prilba)[ v přilbě](if:$zbroj is false and $stit is false and $prilba is false)[ jen tak nahatý, od hlavy až po paty]
[[zkusit znovu->vstup3]]
[[zpět na rozchodník->Rozchodník]] Existující příběh lze importovat a dále upravovat přímo ve webové verzi Twinery. Pokud chceme importovat soubory publikované na webu, musíme je nejprve stáhnout do počítače tím, že si je otevřeme a dáme "File->Save page as..." (Soubor->Uložit stránku jako...) a uložíme na vhodné místo do počítače.
Otevřeme si editor twinery na <a href="https://twinery.org/2">twinery.org</a>
Nahoře v menu vybrat záložku "Library" (knihovna) a dále "Import" (Importovat).
V pravo dole by se měl ukázat dialog "Import Stories", kde dáme "Procházet" a vybereme náš soubor z počítače. Twinery soubor analyzuje a přímo v dialogu se zeptá, které příběhy bychom rádi importovali, ty zvolíme zaškrtnutím a následně importujeme kliknutím na tlačítko "Import Selected Files" (Importovat zvolené soubory).
V příbězích by se měl nově importovaný projekt objevit a my jej můžeme spustit či upravit..
[[exportování]]Pokud svůj příběh cheme publikovat, otevřeme si jej a v nahoře v menu zvolíme "Build" (sestrojit) a "Publish to File" (Publikovat do souboru). To vygeneruje HTML soubor, který je lokálně spustitelný, případně jej můžeme opět importovat, či nahrát kamkoliv na internet pro veřejné použití.
[[zpět na rozchodník->Rozchodník]]